function formatHour(input) {
	if (event.keyCode > 47 && event.keyCode < 58) {
		var vr = input.value;
		var tecla = String.fromCharCode(event.keyCode);
		vr = vr.replace( ":", "" );
		vr = vr.replace( ":", "" );
		tam = vr.length + 1;
		
		/* Testa hora v?lida */
		
		switch (vr.length) {
			case 0:
				if (tecla > 2) {
					event.returnValue = false;
					return;
				}
				break;
			case 1:
				if (vr.substr(0, 1) == '2') {
					if (tecla > 3) {
						event.returnValue = false;
						return;
					}
				} else {
					if (tecla > 9) {
						event.returnValue = false;
						return;
					}
				}
				break;
			case 2:
				if (tecla > 5) {
					event.returnValue = false;
					return;
				}
				break;
			case 4:
				if (tecla > 5) {
					event.returnValue = false;
					return;
				}
				break;
		}

		/* Formatacao */
		if ( tam > 2 && tam < 5 ) {
			input.value = vr.substr( 0, 2  ) + ':' + vr.substr( 2, tam );
		} else if ( tam >= 5 && tam <= 10 ) {
			input.value = vr.substr( 0, 2 ) + ':' + vr.substr( 2, 2 ) + ':' + vr.substr( 4, 2 );
		}

		event.returnValue = true;
	} else {
		event.returnValue = false;
	}
}